﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MayfairFramework.Common.Resource;

namespace MayfairFramework.Common.Validation
{
    /// <summary>
    /// Nullチェックを行うプロパティを指定
    /// </summary>
    [AttributeUsage(AttributeTargets.Property, AllowMultiple = true, Inherited = false)]
    public class RequiredAttribute : Attribute
    {
        /// <summary>
        /// ターゲットネーム
        /// </summary>
        private string target;

        /// <summary>
        /// コンストラクタ
        /// </summary>
        public RequiredAttribute(): this(string.Empty) { }

        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="target">ターゲットネーム</param>
        public RequiredAttribute(string target)
        {
            this.target = target;
        }

        /// <summary>
        /// ターゲットネーム get/set
        /// </summary>
        public string Target
        {
            get { return target; }
            set { target = value; }
        }

        /// <summary>
        /// エラーメッセージ
        /// </summary>
        public string ErrorMessage
        {
            get { return string.Format(ResourceManager.GetString("Error_Required"), target); }
        }
    }
}
